package pe.com.bbva.efcap.servidor.modelo.entidad;

import java.io.Serializable;
import javax.persistence.*;

import java.sql.Timestamp;
import java.math.BigDecimal;
import java.util.List;


/**
 * The persistent class for the TEF001_EEFF database table.
 * 
 */
@Entity
@Table(name="TEF001_EEFF")
public class EstadoFinaciero implements Serializable {
	private static final long serialVersionUID = 1L;
	private long idEstadoFinanciero;
	private Timestamp fechaActualizacion;
	private Timestamp fechaCreacion;
	private String calificacion;
	private BigDecimal inflacion;
	private BigDecimal mes;
	private BigDecimal estado;
	private String usuarioActualizacion;
	private String usuarioCreacion;
	private Cliente cliente;
	private ParametroGeneral estadoEstadoFinaciero;
	private ParametroGeneral tipoEstadoFinaciero;
	private List<DetalleEstadoFinanciero> detalleEstadoFinancieros;

	public EstadoFinaciero() {
	}


	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SQ_EEFF")
	@SequenceGenerator(sequenceName="SQ_EEFF", name = "SQ_EEFF", allocationSize = 0)	
	@Column(name="CD_EEFF")
	public long getIdEstadoFinanciero() {
		return this.idEstadoFinanciero;
	}

	public void setIdEstadoFinanciero(long idEstadoFinanciero) {
		this.idEstadoFinanciero = idEstadoFinanciero;
	}


	@Column(name="FH_ACTUALIZACION")
	public Timestamp getFechaActualizacion() {
		return this.fechaActualizacion;
	}

	public void setFechaActualizacion(Timestamp fechaActualizacion) {
		this.fechaActualizacion = fechaActualizacion;
	}


	@Column(name="FH_CREACION")
	public Timestamp getFechaCreacion() {
		return this.fechaCreacion;
	}

	public void setFechaCreacion(Timestamp fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}


	@Column(name="NB_CALIFICACION")
	public String getCalificacion() {
		return this.calificacion;
	}

	public void setCalificacion(String calificacion) {
		this.calificacion = calificacion;
	}


	@Column(name="NU_INFLACION")
	public BigDecimal getInflacion() {
		return this.inflacion;
	}

	public void setInflacion(BigDecimal inflacion) {
		this.inflacion = inflacion;
	}


	@Column(name="NU_MES")
	public BigDecimal getMes() {
		return this.mes;
	}

	public void setMes(BigDecimal mes) {
		this.mes = mes;
	}


	@Column(name="ST_ESTADO")
	public BigDecimal getEstado() {
		return this.estado;
	}

	public void setEstado(BigDecimal estado) {
		this.estado = estado;
	}


	@Column(name="TX_USU_ACTUALIZAC")
	public String getUsuarioActualizacion() {
		return this.usuarioActualizacion;
	}

	public void setUsuarioActualizacion(String usuarioActualizacion) {
		this.usuarioActualizacion = usuarioActualizacion;
	}


	@Column(name="TX_USU_CREACION")
	public String getUsuarioCreacion() {
		return this.usuarioCreacion;
	}

	public void setUsuarioCreacion(String usuarioCreacion) {
		this.usuarioCreacion = usuarioCreacion;
	}


	//bi-directional many-to-one association to Cliente
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="CD_CLIENTE")
	public Cliente getCliente() {
		return this.cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}


	//bi-directional many-to-one association to ParametroGeneral
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="ST_EEFF")
	public ParametroGeneral getEstadoEstadoFinaciero() {
		return this.estadoEstadoFinaciero;
	}

	public void setEstadoEstadoFinaciero(ParametroGeneral estadoEstadoFinaciero) {
		this.estadoEstadoFinaciero = estadoEstadoFinaciero;
	}


	//bi-directional many-to-one association to ParametroGeneral
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="TP_EEFF")
	public ParametroGeneral getTipoEstadoFinaciero() {
		return this.tipoEstadoFinaciero;
	}

	public void setTipoEstadoFinaciero(ParametroGeneral tipoEstadoFinaciero) {
		this.tipoEstadoFinaciero = tipoEstadoFinaciero;
	}


	//bi-directional many-to-one association to DetEstadoFinanciero
	@OneToMany(mappedBy="estadoFinanciero")
	public List<DetalleEstadoFinanciero> getDetalleEstadoFinancieros() {
		return this.detalleEstadoFinancieros;
	}

	public void setDetalleEstadoFinancieros(List<DetalleEstadoFinanciero> detalleEstadoFinancieros) {
		this.detalleEstadoFinancieros = detalleEstadoFinancieros;
	}

	public DetalleEstadoFinanciero addDetEstadoFinanciero(DetalleEstadoFinanciero detEstadoFinanciero) {
		getDetalleEstadoFinancieros().add(detEstadoFinanciero);
		detEstadoFinanciero.setEstadoFinanciero(this);

		return detEstadoFinanciero;
	}

	public DetalleEstadoFinanciero removeDetEstadoFinanciero(DetalleEstadoFinanciero detEstadoFinanciero) {
		getDetalleEstadoFinancieros().remove(detEstadoFinanciero);
		detEstadoFinanciero.setEstadoFinanciero(null);

		return detEstadoFinanciero;
	}

}
